#ifndef GRAPHICLOADER_H
#define GRAPHICLOADER_H

#include "bga/graphics/Drawable.h"
#include "bga/graphics/Texture2D.h"
#include "bga/graphics/SceneNode.h"
#include <string>

/**
 * \namespace bga
 * \brief API namespace
 */
namespace bga
{

/*!
 * \class Loader
 * \brief interface for a loader
 */
class GraphicLoader
{
    public:
        virtual void load(const std::string& filename) = 0;
        virtual void getDrawable(Drawable& drawable) = 0;   /// Declared like that to avoid the fact that loader handle drawbale memory
        virtual void getTexture(Texture2D& texture) = 0;
        virtual void setSceneNode(SceneNode& sceneNode) = 0;
};

}

#endif // GRAPHICLOADER_H

